package com.punch.common.vo.course;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * CoursePageVO-课程列表信息 展示vo
 *
 * @author xiaol
 * @version 1.0.0
 * @since 2020/7/14 10:51
 */
@Data
public class CoursePageVO implements Serializable {

    @ApiModelProperty(name = "courseId", notes = "课程主键id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long courseId;


    @ApiModelProperty(name = "libraryId", notes = "课程库id")
    @JsonSerialize(using = ToStringSerializer.class)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long libraryId;

    /**
     * 课程名称
     */
    @ApiModelProperty(name = "courseName", notes = "课程名称")
    private String courseName;

    /**
     * 课程分类名称  单选 (素质课、社团课、托管班...)
     */
    @ApiModelProperty(name = "courseClassifi", notes = "课程分类名称  单选 (0-素质课、1-社团课、2-托管班...)")
    private Integer courseClassifi;

    /**
     * 课程类目名称
     */
    @ApiModelProperty(name = "courseCategoryName", notes = "课程类目名称")
    private String courseCategoryName;

    /**
     * 单选，选项：0基础、1进阶、2高级
     */
    @ApiModelProperty(name = "courseLevel", notes = "单选，选项：0基础、1进阶、2高级")
    private Integer courseLevel;

    /**
     * 课时数
     */
    @ApiModelProperty(name = "courseHourCount", notes = "课时数")
    private Integer courseHourCount;
    /**
     * 课时单价：单位元，精度两位小数
     */
    @ApiModelProperty(name = "courseHourPrice", notes = "课时单价：单位元，精度两位小数")
    private BigDecimal courseHourPrice;

    /**
     * 禁用状态  0：禁用  1启用
     */
    @ApiModelProperty(name = "enabled", notes = "禁用状态  0：禁用  1启用")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer enabled;

    /**
     * 课程创建者姓名
     */
    @ApiModelProperty(name = "courseCreateName", notes = "课程创建者姓名")
    private String courseCreateName;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer courseStatus;

    /**
     * 创建用户id
     */
    @ApiModelProperty(name = "createId", notes = "创建用户id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer roleId;

    /**
     * 机构编号
     */
    @ApiModelProperty(name = "orgNo", notes = "机构编号")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String orgNo;
}
